tg-me.com/php_interview_lib/767
Last Update:
Почему json_encode([]) === '[]'
, но json_encode((object)[]) === '{}'
?
В PHP функция json_encode()
преобразует структуры данных в строки JSON. Результат зависит от типа передаваемой структуры: массив или объект.
🔍 Почему json_encode([])
возвращает '[]'
Пустой массив []
в PHP интерпретируется как последовательный массив без ключей. При преобразовании в JSON он становится пустым массивом: '[]'
.
🔍 Почему json_encode((object)[])
возвращает '{}'
При приведении пустого массива к объекту (object)[]
получается экземпляр класса stdClass
без свойств. При кодировании в JSON он становится пустым объектом: '{}'
.
⚠️ Важность различия
В JSON пустой массив '[]'
и пустой объект '{}'
— разные типы данных. Это различие может быть критичным при взаимодействии с API или клиентскими приложениями, ожидающими определённый тип данных.
✅ Как контролировать результат json_encode()
🔸Чтобы получить пустой объект в JSON, приведите массив к объекту: (object)[]
.
🔸 Чтобы получить пустой массив, используйте []
.
Будьте осторожны с флагом JSON_FORCE_OBJECT
, так как он преобразует все массивы в объекты, что может привести к нежелательным результатам.
BY Библиотека собеса по PHP | вопросы с собеседований
Warning: Undefined variable $i in /var/www/tg-me/post.php on line 283
Share with your friend now:
tg-me.com/php_interview_lib/767